
#include <stdio.h>

// 大小， 对于结构体而言，如果不考虑内存对齐，其大小，就是所有元素大小之和。

// 成员地址 对于结构体而言，每一个成员均有自己独立的地址
typedef struct _structTest
{
    char a;
    short b;
    int c;
}MyStruct;

// 大小， 对于共用体/联合体而言，其大小，就是最大元素所占用的空间大小。

// 成员地址 对于共用体而言，所有的成员独有一个地址
typedef union _unionTest
{
    int c;  //4
    char a; //1
    short b; //2

//    char a; //1
//    short b; //2
//    int c;  //4
//    double d; //8
//    long double e; //12
}MyUnion;

int main()
{
    MyStruct ms;
    MyUnion mu = {0x12345678};
//    MyUnion mu;
//    mu.c =0x12345678;

    printf("sizeof(MyStruct) = %d\n",sizeof (MyStruct));
    printf("sizeof(MyUinon) = %d\n",sizeof (MyUnion));

    printf("%p %p %p\n",&ms.a,&ms.b,&ms.c);
    printf("%p %p %p\n",&mu.a,&mu.b,&mu.c);

    printf("%x %x %x\n",mu.a,mu.b,mu.c);
    return 0;
}
